home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / Caml Light 0.7 / Caml Light 0.7 source / src / lex / gram_aux.ml next >
Text File  |  1995-06-01  |  508b  |  20 lines

  1. (* Auxiliaries for the parser. *)
  2.  
  3. #open "syntax";;
  4.  
  5. let regexp_for_string s = re_string 0
  6.   where rec re_string n =
  7.     if n >= string_length s then Epsilon
  8.     else if succ n = string_length s then Characters([nth_char s n])
  9.     else Sequence(Characters([nth_char s n]), re_string (succ n))
  10. ;;
  11.  
  12. let char_class c1 c2 = class (int_of_char c1)
  13.   where rec class n =
  14.     if n > (int_of_char c2) then [] else (char_of_int n) :: class(succ n)
  15. ;;
  16.  
  17. let all_chars = char_class (char_of_int 1) (char_of_int 255)
  18. ;;
  19.  
  20.